home *** CD-ROM | disk | FTP | other *** search
- ; IRA V1.02 (Sep 6 1993) (c)1993 Tim Ruehsen
-
- ; re-source of Prince Of Persia read routine
-
- include "/disklib_hard/trackmoves.i"
-
- CIAB_PRA EQU $BFD000
- CIAB_PRB EQU $BFD100
- CIAB_DDRA EQU $BFD200
- CIAB_DDRB EQU $BFD300
- CIAB_ICR EQU $BFDD00
- CIAA_PRA EQU $BFE001
- CIAA_DDRA EQU $BFE201
- CIAA_DDRB EQU $BFE301
- CIAA_TALO EQU $BFE401
- CIAA_TAHI EQU $BFE501
- CIAA_ICR EQU $BFED01
- CIAA_CRA EQU $BFEE01
- INTREQR EQU $DFF01E
- DSKPTH EQU $DFF020
- DSKLEN EQU $DFF024
- DSKSYNC EQU $DFF07E
- DMACON EQU $DFF096
- INTREQ EQU $DFF09C
- ADKCON EQU $DFF09E
-
-
- include "/lib/libs.i"
-
-
- XDEF _ReadPOPSectors
-
- XREF _SysBase
-
-
- RAW_LEN = $3100
-
- _ReadPOPSectors:
- move.l 4(a7),A1 ; buffer
- move.l 8(a7),D0 ; offset
- move.l 12(a7),D1 ; lenght
-
- movem.l D1-A6,-(sp)
-
- bsr @ReadPOPSectors
-
- movem.l (sp)+,D1-A6
- rts
-
- @ReadPOPSectors:
- movem.l D1-A6,-(sp)
-
- move.l A1,buffer
- move.l D0,offset
- move.l D1,length
-
- move.l _SysBase,A6
- move.l #RAW_LEN,D0
- move.l #MEMF_CHIP,D1
- JSRLIB AllocMem
- move.l D0,rawbuffer
- beq error$
-
-
- move.l _SysBase,A6
- JSRLIB Disable
- move.l _SysBase,A6
- JSRLIB SuperState
- move.l D0,userstack
-
- move.w #$2700,SR
-
- moveq.l #0,D0
- jsr _InitDisk
- jsr _WaitDiskReady
-
- bsr initread
-
- move.l buffer,A1
- move.l rawbuffer,A0
- move.l offset,D0
- move.l length,D1
- nop
- nop
- bsr doread
- bmi ok$
- st.b errorflag
- ok$
- nop
- nop
- jsr _EndDisk
-
- move.w #$2000,SR
- move.l userstack,D0
- move.l _SysBase,A6
- JSRLIB UserState
- move.l _SysBase,A6
- JSRLIB Enable
-
- move.l _SysBase,A6
- move.l rawbuffer,A1
- move.l #RAW_LEN,D0
- JSRLIB FreeMem
-
- exit$
- moveq.l #0,D0
- move.b errorflag,D0
- movem.l (sp)+,D1-A6
- rts
-
- error$
- moveq #-1,D7
- bra exit$
-
-
- LAB_0006:
- MOVEM.L D0-D2,-(A7) ;0B6: 48E7E000
- LAB_0007:
- BTST #0,CIAA_CRA ;0BA: 0839000000BFEE01
- BNE.S LAB_0007 ;0C2: 66F6
-
- LAB_0008:
- TST D0 ;0C4: 4A40
- BEQ LAB_000C ;0C6: 67000038
- CMPI #$005A,D0 ;0CA: 0C40005A
- BHI.S LAB_0009 ;0CE: 6204
- MOVE D0,D1 ;0D0: 3200
- BRA.S LAB_000A ;0D2: 6004
-
-
- LAB_0009:
- MOVE #$005A,D1 ;0D4: 323C005A
- LAB_000A:
- SUB D1,D0 ;0D8: 9041
- MULU #$02CC,D1 ;0DA: C2FC02CC
- MOVE SR,D2 ;0DE: 40C2
- ORI #$0700,SR ;0E0: 007C0700
- MOVE.B D1,CIAA_TALO ;0E4: 13C100BFE401
- LSR #8,D1 ;0EA: E049
- MOVE.B D1,CIAA_TAHI ;0EC: 13C100BFE501
- MOVE D2,SR ;0F2: 46C2
- LAB_000B:
- BTST #0,CIAA_CRA ;0F4: 0839000000BFEE01
- BNE.S LAB_000B ;0FC: 66F6
- BRA.S LAB_0008 ;0FE: 60C4
- LAB_000C:
- MOVEM.L (A7)+,D0-D2 ;100: 4CDF0007
- RTS ;104: 4E75
-
-
- MOVEM.L D0/D2,-(A7) ;106: 48E7A000
- LAB_000D:
- BTST #0,CIAA_CRA ;10A: 0839000000BFEE01
- BNE.S LAB_000D ;112: 66F6
- MULU #$B746,D0 ;114: C0FCB746
- ADDI.L #$00008000,D0 ;118: 068000008000
- SWAP D0 ;11E: 4840
- TST D0 ;120: 4A40
- BEQ LAB_000F ;122: 67000022
- MOVE SR,D1 ;126: 40C1
- ORI #$0700,SR ;128: 007C0700
- MOVE.B D0,CIAA_TALO ;12C: 13C000BFE401
- LSR #8,D0 ;132: E048
- MOVE.B D0,CIAA_TAHI ;134: 13C000BFE501
- MOVE D1,SR ;13A: 46C1
- LAB_000E:
- BTST #0,CIAA_CRA ;13C: 0839000000BFEE01
- BNE.S LAB_000E ;144: 66F6
- LAB_000F:
- MOVEM.L (A7)+,D0/D2 ;146: 4CDF0005
- RTS ;14A: 4E75
-
-
- initread:
- MOVEM.L D0-D1,-(A7) ;14C: 48E7C000
- MOVE #$7F00,ADKCON ;150: 33FC7F0000DFF09E
- MOVE #$9100,ADKCON ;158: 33FC910000DFF09E
- MOVE.B #$FF,CIAB_PRB ;160: 13FC00FF00BFD100
- MOVE.B #$8F,CIAB_PRB ;168: 13FC008F00BFD100
- MOVE.B #$FF,CIAB_PRB ;170: 13FC00FF00BFD100
- MOVE.B #$F7,CIAB_PRB ;178: 13FC00F700BFD100
- BSR LAB_0031 ;180: 610002DC
- BTST #2,CIAA_PRA ;184: 0839000200BFE001
- NOP ;18C: 4E71
- MOVE.B #$7F,CIAB_PRB ;18E: 13FC007F00BFD100
- MOVE.B #$77,CIAB_PRB ;196: 13FC007700BFD100
- MOVE #$00FA,D0 ;19E: 303C00FA
- MOVE #$0010,D1 ;1A2: 323C0010
- LAB_0010:
- BSR LAB_0006 ;1A6: 6100FF0E
- BTST #5,CIAA_PRA ;1AA: 0839000500BFE001
- BEQ.S LAB_0011 ;1B2: 6706
- SUBQ #1,D1 ;1B4: 5341
- BNE.S LAB_0010 ;1B6: 66EE
- NOP ;1B8: 4E71
- LAB_0011:
- BSR LAB_0028 ;1BA: 61000230
- ORI.B #$08,CCR ;1BE: 003C0008
- BRA.S LAB_0012 ;1C2: 6004
- ANDI.B #$F7,CCR ;1C4: 023C00F7
- LAB_0012:
- MOVEM.L (A7)+,D0-D1 ;1C8: 4CDF0003
- RTS ;1CC: 4E75
- MOVE.B #$FF,CIAB_PRB ;1CE: 13FC00FF00BFD100
- MOVE.B #$87,CIAB_PRB ;1D6: 13FC008700BFD100
- MOVE.B #$FF,CIAB_PRB ;1DE: 13FC00FF00BFD100
- RTS ;1E6: 4E75
- MOVE.B #$FF,CIAB_PRB ;1E8: 13FC00FF00BFD100
- MOVE.B #$F7,CIAB_PRB ;1F0: 13FC00F700BFD100
- BSR LAB_0031 ;1F8: 61000264
- LAB_0013:
- BTST #2,CIAA_PRA ;1FC: 0839000200BFE001
- BNE.S LAB_0013 ;204: 66F6
- MOVE.B #$FF,CIAB_PRB ;206: 13FC00FF00BFD100
- RTS ;20E: 4E75
- LAB_0014:
- MOVEM.L A1,-(A7) ;210: 48E70040
- MOVEA.L #$00000000,A1 ;214: 227C00000000
- BSR LAB_0019 ;21A: 61000030
- MOVEM.L (A7)+,A1 ;21E: 4CDF0200
- RTS
-
-
- doread:
-
- MOVEM.L D0-D1/A1,-(A7) ;224: 48E7C040
- LAB_0015:
- BSR LAB_0019 ;228: 61000022
- BPL.S LAB_0017 ;22C: 6A14
- SUBQ #1,D1 ;22E: 5341
- BEQ.S LAB_0016 ;230: 670A
- ADDQ #1,D0 ;232: 5240
- ADDA.L #$00001800,A1 ;234: D3FC00001800
- BRA.S LAB_0015 ;23A: 60EC
- LAB_0016:
- ORI.B #$08,CCR ;23C: 003C0008
- BRA.S LAB_0018 ;240: 6004
- LAB_0017:
- ANDI.B #$F7,CCR ;242: 023C00F7
- LAB_0018:
- MOVEM.L (A7)+,D0-D1/A1 ;246: 4CDF0203
- RTS ;24A: 4E75
- LAB_0019:
- MOVEM.L D0-D4/A0-A3,-(A7) ;24C: 48E7F8F0
- MOVEA.L A0,A2 ;250: 2448
- MOVEA.L A1,A3 ;252: 2649
- BTST #5,CIAA_PRA ;254: 0839000500BFE001
- NOP ;25C: 4E71
- NOP ;25E: 4E71
- BTST #2,CIAA_PRA ;260: 0839000200BFE001
- NOP ;268: 4E71
- NOP ;26A: 4E71
- BSR ReadRawTrack ;26C: 610001A8
- MOVE #$0004,D4 ;270: 383C0004
- LAB_001A:
- SUBQ #1,D4 ;274: 5344
- BMI.S LAB_001C ;276: 6B6E
- MOVE #$3020,D0 ;278: 303C3020
- MOVE #$4891,D1 ;27C: 323C4891
- MOVEA.L A2,A0 ;280: 204A
- BSR LAB_0035 ;282: 61000256
- CMPI #$4891,(A2) ;286: 0C524891
- BNE.S LAB_001A ;28A: 66E8
- CMPI #$44A9,2(A2) ;28C: 0C6A44A90002
- BNE.S LAB_001A ;292: 66E0
- MOVE #$0008,D0 ;294: 303C0008
- LEA 4(A2),A0 ;298: 41EA0004
- MOVEA.L A0,A1 ;29C: 2248
- BSR DecodeBytes ;29E: 61000378
- MOVE #$3008,D0 ;2A2: 303C3008
- LEA 12(A2),A0 ;2A6: 41EA000C
- BSR LAB_003F ;2AA: 610003B6
- CMP.L 4(A2),D0 ;2AE: B0AA0004
- BNE.S LAB_001A ;2B2: 66C0
- MOVE #$0008,D0 ;2B4: 303C0008
- LEA 12(A2),A0 ;2B8: 41EA000C
- MOVEA.L A0,A1 ;2BC: 2248
- BSR DecodeBytes ;2BE: 61000358
- MOVE.L (A0),D0 ;2C2: 2010
- CMP LAB_0005(PC),D0 ;2C4: B07AFDEE
- BNE.S LAB_001C ;2C8: 661C
- MOVE #$3000,D0 ;2CA: 303C3000
- LEA 20(A2),A0 ;2CE: 41EA0014
- MOVEA.L A3,A1 ;2D2: 224B
- CMPA.L #$00000000,A1 ;2D4: B3FC00000000
- BEQ.S LAB_001B ;2DA: 6704
- BSR DecodeBytes ;2DC: 6100033A
- LAB_001B:
- ORI.B #$08,CCR ;2E0: 003C0008
- BRA.S LAB_001D ;2E4: 6004
- LAB_001C:
- ANDI.B #$F7,CCR ;2E6: 023C00F7
- LAB_001D:
- MOVEM.L (A7)+,D0-D4/A0-A3 ;2EA: 4CDF0F1F
- RTS ;2EE: 4E75
- MOVEM.L D0-D1/A1,-(A7) ;2F0: 48E7C040
- LAB_001E:
- BSR LAB_0022 ;2F4: 61000022
- BPL.S LAB_0020 ;2F8: 6A14
- SUBQ #1,D1 ;2FA: 5341
- BEQ.S LAB_001F ;2FC: 670A
- ADDQ #1,D0 ;2FE: 5240
- ADDA.L #$00001800,A1 ;300: D3FC00001800
- BRA.S LAB_001E ;306: 60EC
- LAB_001F:
- ORI.B #$08,CCR ;308: 003C0008
- BRA.S LAB_0021 ;30C: 6004
- LAB_0020:
- ANDI.B #$F7,CCR ;30E: 023C00F7
- LAB_0021:
- MOVEM.L (A7)+,D0-D1/A1 ;312: 4CDF0203
- RTS ;316: 4E75
- LAB_0022:
- MOVEM.L D0-D1,-(A7) ;318: 48E7C000
- BTST #5,CIAA_PRA ;31C: 0839000500BFE001
- NOP ;324: 4E71
- BTST #2,CIAA_PRA ;326: 0839000200BFE001
- NOP ;32E: 4E71
- BTST #3,CIAA_PRA ;330: 0839000300BFE001
- BEQ.S LAB_0024 ;338: 6728
- BSR ReadRawTrack ;33A: 610000DA
- MOVE #$0004,D1 ;33E: 323C0004
- LAB_0023:
- SUBQ #1,D1 ;342: 5341
- BMI.S LAB_0024 ;344: 6B1C
- BSR LAB_0026 ;346: 61000024
- MOVE #$3300,D0 ;34A: 303C3300
- BSR LAB_0037 ;34E: 610001FE
- MOVE LAB_0005(PC),D0 ;352: 303AFD60
- BSR LAB_0014 ;356: 6100FEB8
- BPL.S LAB_0023 ;35A: 6AE6
- ORI.B #$08,CCR ;35C: 003C0008
- BRA.S LAB_0025 ;360: 6004
- LAB_0024:
- ANDI.B #$F7,CCR ;362: 023C00F7
- LAB_0025:
- MOVEM.L (A7)+,D0-D1 ;366: 4CDF0003
- RTS ;36A: 4E75
- LAB_0026:
- MOVEM.L D0-D1/A0-A3,-(A7) ;36C: 48E7C0F0
- MOVEA.L A1,A3 ;370: 2649
- MOVE #$AAAA,D0 ;372: 303CAAAA
- MOVE #$0173,D1 ;376: 323C0173
- LAB_0027:
- MOVE D0,(A0)+ ;37A: 30C0
- DBF D1,LAB_0027 ;37C: 51C9FFFC
- MOVE.L #$48914891,(A0)+ ;380: 20FC48914891
- MOVE #$44A9,(A0)+ ;386: 30FC44A9
- MOVEA.L A0,A2 ;38A: 2448
- MOVE.L #$00000000,(A0)+ ;38C: 20FC00000000
- MOVE.L #$00000000,(A0)+ ;392: 20FC00000000
- MOVE #$0000,(A0) ;398: 30BC0000
- MOVE LAB_0005(PC),2(A0) ;39C: 317AFD160002
- MOVE #$0004,D0 ;3A2: 303C0004
- MOVEA.L A0,A1 ;3A6: 2248
- BSR LAB_0039 ;3A8: 6100020A
- ADDA #$0008,A0 ;3AC: D0FC0008
- MOVE #$1800,D0 ;3B0: 303C1800
- MOVEA.L A3,A1 ;3B4: 224B
- BSR LAB_0039 ;3B6: 610001FC
- ADDA #$3000,A0 ;3BA: D0FC3000
- MOVE #$AAAA,(A0)+ ;3BE: 30FCAAAA
- MOVE #$3008,D0 ;3C2: 303C3008
- LEA 8(A2),A0 ;3C6: 41EA0008
- BSR LAB_003F ;3CA: 61000296
- MOVE.L D0,(A2) ;3CE: 2480
- MOVE #$0004,D0 ;3D0: 303C0004
- MOVEA.L A2,A0 ;3D4: 204A
- MOVEA.L A2,A1 ;3D6: 224A
- BSR LAB_0039 ;3D8: 610001DA
- MOVE #$3010,D0 ;3DC: 303C3010
- MOVEA.L A2,A0 ;3E0: 204A
- BSR LAB_003B ;3E2: 610001FC
- MOVEM.L (A7)+,D0-D1/A0-A3 ;3E6: 4CDF0F03
- RTS ;3EA: 4E75
- LAB_0028:
- MOVEM.L D0,-(A7) ;3EC: 48E78000
- LAB_0029:
- BTST #4,CIAA_PRA ;3F0: 0839000400BFE001
- BEQ.S LAB_002A ;3F8: 6706
- BSR LAB_0033 ;3FA: 610000A0
- BRA.S LAB_0029 ;3FE: 60F0
- LAB_002A:
- BSET #2,CIAB_PRB ;400: 08F9000200BFD100
- MOVE #$0000,LAB_0005 ;408: 33FC00000007ECB4
- MOVEM.L (A7)+,D0 ;410: 4CDF0001
- RTS ;414: 4E75
-
- ReadRawTrack:
- MOVEM.L D0-D1,-(A7) ;416: 48E7C000
- MOVE LAB_0005(PC),D1 ;41A: 323AFC98
- MOVE D0,LAB_0005 ;41E: 33C00007ECB4
- BTST #0,D0 ;424: 08000000
- BEQ.S LAB_002C ;428: 670A
- BCLR #2,CIAB_PRB ;42A: 08B9000200BFD100
- BRA.S LAB_002D ;432: 6008
- LAB_002C:
- BSET #2,CIAB_PRB ;434: 08F9000200BFD100
- LAB_002D:
- LSR #1,D0 ;43C: E248
- LSR #1,D1 ;43E: E249
- SUB D1,D0 ;440: 9041
- BEQ.S LAB_0030 ;442: 6714
- BMI.S LAB_002F ;444: 6B0A
- LAB_002E:
- BSR LAB_0031 ;446: 61000016
- SUBQ #1,D0 ;44A: 5340
- BNE.S LAB_002E ;44C: 66F8
- BRA.S LAB_0030 ;44E: 6008
- LAB_002F:
- BSR LAB_0033 ;450: 6100004A
- ADDQ #1,D0 ;454: 5240
- BNE.S LAB_002F ;456: 66F8
- LAB_0030:
- MOVEM.L (A7)+,D0-D1 ;458: 4CDF0003
- RTS ;45C: 4E75
- LAB_0031:
- MOVEM.L D0-D1,-(A7) ;45E: 48E7C000
- MOVE.B CIAB_PRB,D1 ;462: 123900BFD100
- BCLR #1,CIAB_PRB ;468: 08B9000100BFD100
- BCLR #0,CIAB_PRB ;470: 08B9000000BFD100
- NOP ;478: 4E71
- NOP ;47A: 4E71
- BSET #0,CIAB_PRB ;47C: 08F9000000BFD100
- MOVE #$0003,D0 ;484: 303C0003
- BTST #1,D1 ;488: 08010001
- BEQ.S LAB_0032 ;48C: 6704
- ADDI #$000F,D0 ;48E: 0640000F
- LAB_0032:
- BSR LAB_0006 ;492: 6100FC22
- MOVEM.L (A7)+,D0-D1 ;496: 4CDF0003
- RTS ;49A: 4E75
- LAB_0033:
- MOVEM.L D0-D1,-(A7) ;49C: 48E7C000
- MOVE.B CIAB_PRB,D1 ;4A0: 123900BFD100
- BSET #1,CIAB_PRB ;4A6: 08F9000100BFD100
- BCLR #0,CIAB_PRB ;4AE: 08B9000000BFD100
- NOP ;4B6: 4E71
- NOP ;4B8: 4E71
- BSET #0,CIAB_PRB ;4BA: 08F9000000BFD100
- MOVE #$0003,D0 ;4C2: 303C0003
- BTST #1,D1 ;4C6: 08010001
- BNE.S LAB_0034 ;4CA: 6604
- ADDI #$000F,D0 ;4CC: 0640000F
- LAB_0034:
- BSR LAB_0006 ;4D0: 6100FBE4
- MOVEM.L (A7)+,D0-D1 ;4D4: 4CDF0003
- RTS ;4D8: 4E75
- LAB_0035:
- MOVEM.L D0,-(A7) ;4DA: 48E78000
- MOVE #$1002,INTREQ ;4DE: 33FC100200DFF09C
- MOVE.L A0,DSKPTH ;4E6: 23C800DFF020
- MOVE D1,DSKSYNC ;4EC: 33C100DFF07E
- MOVE #$8400,ADKCON ;4F2: 33FC840000DFF09E
- MOVE #$4000,DSKLEN ;4FA: 33FC400000DFF024
- MOVE #$8010,DMACON ;502: 33FC801000DFF096
- LSR #1,D0 ;50A: E248
- ORI #$8000,D0 ;50C: 00408000
- MOVE D0,DSKLEN ;510: 33C000DFF024
- MOVE D0,DSKLEN ;516: 33C000DFF024
- LAB_0036:
- MOVE INTREQR,D0 ;51C: 303900DFF01E
- ANDI #$0002,D0 ;522: 02400002
- BEQ.S LAB_0036 ;526: 67F4
- MOVE #$0010,DMACON ;528: 33FC001000DFF096
- MOVE #$4000,DSKLEN ;530: 33FC400000DFF024
- MOVE #$0400,ADKCON ;538: 33FC040000DFF09E
- MOVE #$1002,INTREQ ;540: 33FC100200DFF09C
- MOVEM.L (A7)+,D0 ;548: 4CDF0001
- RTS ;54C: 4E75
- LAB_0037:
- MOVEM.L D0,-(A7) ;54E: 48E78000
- MOVE #$0002,INTREQ ;552: 33FC000200DFF09C
- MOVE.L A0,DSKPTH ;55A: 23C800DFF020
- MOVE #$4000,DSKLEN ;560: 33FC400000DFF024
- MOVE #$8010,DMACON ;568: 33FC801000DFF096
- LSR #1,D0 ;570: E248
- ORI #$C000,D0 ;572: 0040C000
- MOVE D0,DSKLEN ;576: 33C000DFF024
- MOVE D0,DSKLEN ;57C: 33C000DFF024
- LAB_0038:
- MOVE INTREQR,D0 ;582: 303900DFF01E
- ANDI #$0002,D0 ;588: 02400002
- BEQ.S LAB_0038 ;58C: 67F4
- MOVE #$0010,DMACON ;58E: 33FC001000DFF096
- MOVE #$4000,DSKLEN ;596: 33FC400000DFF024
- MOVE #$1002,INTREQ ;59E: 33FC100200DFF09C
- MOVE #$0002,D0 ;5A6: 303C0002
- BSR LAB_0006 ;5AA: 6100FB0A
- MOVEM.L (A7)+,D0 ;5AE: 4CDF0001
- RTS ;5B2: 4E75
- LAB_0039:
- MOVEM.L D0-D1/D4/A0-A2,-(A7) ;5B4: 48E7C8E0
- MOVEA.L A0,A2 ;5B8: 2448
- ADDA D0,A2 ;5BA: D4C0
- MOVE D0,D4 ;5BC: 3800
- LSR #1,D4 ;5BE: E24C
- SUBQ #1,D4 ;5C0: 5344
- LAB_003A:
- MOVE (A1)+,D0 ;5C2: 3019
- MOVE D0,D1 ;5C4: 3200
- LSR #1,D1 ;5C6: E249
- ANDI #$5555,D1 ;5C8: 02415555
- MOVE D1,(A0)+ ;5CC: 30C1
- MOVE D0,D1 ;5CE: 3200
- ANDI #$5555,D1 ;5D0: 02415555
- MOVE D1,(A2)+ ;5D4: 34C1
- DBF D4,LAB_003A ;5D6: 51CCFFEA
- MOVEM.L (A7)+,D0-D1/D4/A0-A2 ;5DA: 4CDF0713
- RTS ;5DE: 4E75
- LAB_003B:
- MOVEM.L D0-D4/A0,-(A7) ;5E0: 48E7F880
- MOVE D0,D4 ;5E4: 3800
- LSR #1,D4 ;5E6: E24C
- SUBQ #1,D4 ;5E8: 5344
- MOVE -2(A0),D0 ;5EA: 3028FFFE
- ANDI #$5555,D0 ;5EE: 02405555
- LAB_003C:
- MOVE (A0),D1 ;5F2: 3210
- ANDI #$5555,D1 ;5F4: 02415555
- MOVE D1,D2 ;5F8: 3401
- ASL #1,D2 ;5FA: E342
- MOVE D1,D3 ;5FC: 3601
- LSR #1,D0 ;5FE: E248
- ROXR #1,D3 ;600: E253
- OR D3,D2 ;602: 8443
- EORI #$AAAA,D2 ;604: 0A42AAAA
- OR D1,D2 ;608: 8441
- MOVE D2,(A0)+ ;60A: 30C2
- MOVE D1,D0 ;60C: 3001
- DBF D4,LAB_003C ;60E: 51CCFFE2
- MOVEM.L (A7)+,D0-D4/A0 ;612: 4CDF011F
- RTS ;616: 4E75
-
-
- DecodeBytes:
- MOVEM.L D0-D2/A0-A2,-(A7) ;618: 48E7E0E0
- MOVEA.L A0,A2 ;61C: 2448
- LSR #1,D0 ;61E: E248
- ADDA D0,A2 ;620: D4C0
- LSR #1,D0 ;622: E248
- SUBQ #1,D0 ;624: 5340
- LAB_003E:
- MOVE (A0)+,D1 ;626: 3218
- ANDI #$5555,D1 ;628: 02415555
- ASL #1,D1 ;62C: E341
- MOVE (A2)+,D2 ;62E: 341A
- ANDI #$5555,D2 ;630: 02425555
- OR D2,D1 ;634: 8242
- MOVE D1,(A1)+ ;636: 32C1
- DBF D0,LAB_003E ;638: 51C8FFEC
- MOVEM.L (A7)+,D0-D2/A0-A2 ;63C: 4CDF0707
- RTS
-
- LAB_003F:
- MOVEM.L D1-D2/A0,-(A7) ;662: 48E76080
- MOVE D0,D1 ;666: 3200
- LSR #2,D1 ;668: E449
- SUBQ #1,D1 ;66A: 5341
- MOVEQ #0,D0 ;66C: 7000
- LAB_0040:
- MOVE.L (A0)+,D2 ;66E: 2418
- EOR.L D2,D0 ;670: B580
- DBF D1,LAB_0040 ;672: 51C9FFFA
- ANDI.L #$55555555,D0 ;676: 028055555555
- MOVEM.L (A7)+,D1-D2/A0 ;67C: 4CDF0106
- RTS ;680: 4E75
-
-
- rawbuffer:
- dc.l 0
-
- userstack:
- dc.l 0
-
- buffer:
- dc.l 0
-
- length:
- dc.l 0
-
- offset:
- dc.l 0
-
- errorflag:
- dc.l 0
-
- LAB_0005:
- DC.W $0000 ;0B4
-